From 05b9bc5cff5f2bd625412ddac2184af8c026895b Mon Sep 17 00:00:00 2001 From: William Hua Date: Thu, 23 Jun 2016 10:54:22 -0400 Subject: [PATCH] add demo for testing gtk_menu_popup_at_* () https://bugzilla.gnome.org/show_bug.cgi?id=756579 --- tests/Makefile.am | 1 + tests/popupat.ui | 2933 +++++++++++++++++++++++++++++++++++++++++++ tests/testpopupat.c | 64 + 3 files changed, 2998 insertions(+) create mode 100644 tests/popupat.ui create mode 100644 tests/testpopupat.c diff --git a/tests/Makefile.am b/tests/Makefile.am index aeb51a6ca4..649981f6d8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -172,6 +172,7 @@ noinst_PROGRAMS = $(TEST_PROGS) \ gdkgears \ listmodel \ testpopup \ + testpopupat \ $(NULL) if USE_X11 diff --git a/tests/popupat.ui b/tests/popupat.ui new file mode 100644 index 0000000000..aa6698608d --- /dev/null +++ b/tests/popupat.ui @@ -0,0 +1,2933 @@ + + + + + + True + False + start + start + + + True + False + Start-Aligned Item A + True + + + + + True + False + Start-Aligned Item B + True + + + + + True + False + Start-Aligned Item C + True + + + + + True + False + center + center + + + True + False + Center-Aligned Item D + True + + + + + True + False + Center-Aligned Item E + True + + + + + True + False + Center-Aligned Item F + True + + + + + True + False + end + end + + + True + False + End-Aligned Item G + True + + + + + True + False + End-Aligned Item H + True + + + + + True + False + End-Aligned Item I + True + + + + + True + False + start + start + + + True + False + Start-Aligned Item A + True + + + + + True + False + Start-Aligned Item B + True + + + + + True + False + Start-Aligned Item C + True + + + + + True + False + center + center + + + True + False + Center-Aligned Item D + True + + + + + True + False + Center-Aligned Item E + True + + + + + True + False + Center-Aligned Item F + True + + + + + True + False + end + end + + + True + False + End-Aligned Item G + True + + + + + True + False + End-Aligned Item H + True + + + + + True + False + End-Aligned Item I + True + + + + + True + False + start + start + + + True + False + Start-Aligned Item A + True + + + + + True + False + Start-Aligned Item B + True + + + + + True + False + Start-Aligned Item C + True + + + + + True + False + center + center + + + True + False + Center-Aligned Item D + True + + + + + True + False + Center-Aligned Item E + True + + + + + True + False + Center-Aligned Item F + True + + + + + True + False + end + end + + + True + False + End-Aligned Item G + True + + + + + True + False + End-Aligned Item H + True + + + + + True + False + End-Aligned Item I + True + + + + + True + False + start + start + + + True + False + Start-Aligned Item A + True + + + + + True + False + Start-Aligned Item B + True + + + + + True + False + Start-Aligned Item C + True + + + + + True + False + center + center + + + True + False + Center-Aligned Item D + True + + + + + True + False + Center-Aligned Item E + True + + + + + True + False + Center-Aligned Item F + True + + + + + True + False + end + end + + + True + False + End-Aligned Item G + True + + + + + True + False + End-Aligned Item H + True + + + + + True + False + End-Aligned Item I + True + + + + + True + False + start + start + + + True + False + Start-Aligned Item A + True + + + + + True + False + Start-Aligned Item B + True + + + + + True + False + Start-Aligned Item C + True + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + + + False + + + True + True + True + True + + + True + False + + + True + False + start + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + True + True + + + + + gtk-open + True + False + True + True + + + + + gtk-save + True + False + True + True + + + + + gtk-save-as + True + False + True + True + + + + + True + False + + + + + gtk-quit + True + False + True + True + + + + + + + + + True + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + + + + + + + True + False + _View + True + + + + + True + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + + + + + + + + + True + False + Really _Tall Menu + True + + + True + False + + + True + False + Item _A + True + + + + + True + False + Item _B + True + + + + + True + False + Item _C + True + + + + + True + False + Item _D + True + + + + + True + False + Item _E + True + + + + + True + False + Item _F + True + + + + + True + False + Item _G + True + + + + + True + False + Item _H + True + + + + + True + False + Item _I + True + + + + + True + False + Item _J + True + + + + + True + False + Item _K + True + + + + + True + False + Item _L + True + + + + + True + False + Item _M + True + + + + + True + False + Item _N + True + + + + + True + False + Item _O + True + + + + + True + False + Item _P + True + + + + + True + False + Item _Q + True + + + + + True + False + Item _R + True + + + + + True + False + Item _S + True + + + + + True + False + Item _T + True + + + + + True + False + Item _U + True + + + + + True + False + Item _V + True + + + + + True + False + Item _W + True + + + + + True + False + Item _X + True + + + + + True + False + Item _Y + True + + + + + True + False + Item _Z + True + + + + + True + False + Item a + True + + + + + True + False + Item b + True + + + + + True + False + Item c + True + + + + + True + False + Item d + True + + + + + True + False + Item e + True + + + + + True + False + Item f + True + + + + + True + False + Item g + True + + + + + True + False + Item h + True + + + + + True + False + Item i + True + + + + + True + False + Item j + True + + + + + True + False + Item k + True + + + + + True + False + Item l + True + + + + + True + False + Item m + True + + + + + True + False + Item n + True + + + + + True + False + Item o + True + + + + + True + False + Item p + True + + + + + True + False + Item q + True + + + + + True + False + Item r + True + + + + + True + False + Item s + True + + + + + True + False + Item t + True + + + + + True + False + Item u + True + + + + + True + False + Item v + True + + + + + True + False + Item w + True + + + + + True + False + Item x + True + + + + + True + False + Item y + True + + + + + True + False + Item z + True + + + + + + + + + True + False + Really _Deep Menu + True + + + True + False + + + True + False + Item _A + True + + + + + True + False + Item _B + True + + + + + True + False + Item _C + True + + + True + False + + + True + False + Item _D + True + + + + + True + False + Item _E + True + + + + + True + False + Item _F + True + + + True + False + + + True + False + Item _G + True + + + + + True + False + Item _H + True + + + + + True + False + Item _I + True + + + True + False + + + True + False + Item _J + True + + + + + True + False + Item _K + True + + + + + True + False + Item _L + True + + + True + False + + + True + False + Item _M + True + + + + + True + False + Item _N + True + + + + + True + False + Item _O + True + + + True + False + + + True + False + Item _P + True + + + + + True + False + Item _Q + True + + + + + True + False + Item _R + True + + + True + False + + + True + False + Item _S + True + + + + + True + False + Item _T + True + + + + + True + False + Item _U + True + + + True + False + + + True + False + Item _V + True + + + + + True + False + Item _W + True + + + + + True + False + Item _X + True + + + True + False + + + True + False + Item _Y + True + + + + + True + False + Item _Z + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + True + False + start + ttb + + + True + False + _File + True + + + True + False + + + gtk-new + True + False + True + True + + + + + gtk-open + True + False + True + True + + + + + gtk-save + True + False + True + True + + + + + gtk-save-as + True + False + True + True + + + + + True + False + + + + + gtk-quit + True + False + True + True + + + + + + + + + True + False + _Edit + True + + + True + False + + + gtk-cut + True + False + True + True + + + + + gtk-copy + True + False + True + True + + + + + gtk-paste + True + False + True + True + + + + + gtk-delete + True + False + True + True + + + + + + + + + True + False + _View + True + + + + + True + False + _Help + True + + + True + False + + + gtk-about + True + False + True + True + + + + + + + + + True + False + Really _Tall Menu + True + + + True + False + + + True + False + Item _A + True + + + + + True + False + Item _B + True + + + + + True + False + Item _C + True + + + + + True + False + Item _D + True + + + + + True + False + Item _E + True + + + + + True + False + Item _F + True + + + + + True + False + Item _G + True + + + + + True + False + Item _H + True + + + + + True + False + Item _I + True + + + + + True + False + Item _J + True + + + + + True + False + Item _K + True + + + + + True + False + Item _L + True + + + + + True + False + Item _M + True + + + + + True + False + Item _N + True + + + + + True + False + Item _O + True + + + + + True + False + Item _P + True + + + + + True + False + Item _Q + True + + + + + True + False + Item _R + True + + + + + True + False + Item _S + True + + + + + True + False + Item _T + True + + + + + True + False + Item _U + True + + + + + True + False + Item _V + True + + + + + True + False + Item _W + True + + + + + True + False + Item _X + True + + + + + True + False + Item _Y + True + + + + + True + False + Item _Z + True + + + + + True + False + Item a + True + + + + + True + False + Item b + True + + + + + True + False + Item c + True + + + + + True + False + Item d + True + + + + + True + False + Item e + True + + + + + True + False + Item f + True + + + + + True + False + Item g + True + + + + + True + False + Item h + True + + + + + True + False + Item i + True + + + + + True + False + Item j + True + + + + + True + False + Item k + True + + + + + True + False + Item l + True + + + + + True + False + Item m + True + + + + + True + False + Item n + True + + + + + True + False + Item o + True + + + + + True + False + Item p + True + + + + + True + False + Item q + True + + + + + True + False + Item r + True + + + + + True + False + Item s + True + + + + + True + False + Item t + True + + + + + True + False + Item u + True + + + + + True + False + Item v + True + + + + + True + False + Item w + True + + + + + True + False + Item x + True + + + + + True + False + Item y + True + + + + + True + False + Item z + True + + + + + + + + + True + False + Really _Deep Menu + True + + + True + False + + + True + False + Item _A + True + + + + + True + False + Item _B + True + + + + + True + False + Item _C + True + + + True + False + + + True + False + Item _D + True + + + + + True + False + Item _E + True + + + + + True + False + Item _F + True + + + True + False + + + True + False + Item _G + True + + + + + True + False + Item _H + True + + + + + True + False + Item _I + True + + + True + False + + + True + False + Item _J + True + + + + + True + False + Item _K + True + + + + + True + False + Item _L + True + + + True + False + + + True + False + Item _M + True + + + + + True + False + Item _N + True + + + + + True + False + Item _O + True + + + True + False + + + True + False + Item _P + True + + + + + True + False + Item _Q + True + + + + + True + False + Item _R + True + + + True + False + + + True + False + Item _S + True + + + + + True + False + Item _T + True + + + + + True + False + Item _U + True + + + True + False + + + True + False + Item _V + True + + + + + True + False + Item _W + True + + + + + True + False + Item _X + True + + + True + False + + + True + False + Item _Y + True + + + + + True + False + Item _Z + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + True + False + GtkMenu + + + False + + + + + True + False + + + True + True + True + center + center + menu39 + none + + + + + + 2 + 2 + + + + + True + True + True + end + end + True + menu27 + up + + + + + + 1 + 0 + + + + + True + True + True + center + end + True + menu26 + up + + + + + + 2 + 0 + + + + + True + True + True + start + end + True + menu25 + up + + + + + + 3 + 0 + + + + + True + True + True + start + end + True + menu32 + right + + + + + + 4 + 1 + + + + + True + True + True + start + center + True + menu31 + right + + + + + + 4 + 2 + + + + + True + True + True + start + start + True + menu30 + right + + + + + + 4 + 3 + + + + + True + True + True + start + start + True + menu33 + + + + + + 3 + 4 + + + + + True + True + True + center + start + True + menu34 + + + + + + 2 + 4 + + + + + True + True + True + end + start + True + menu35 + + + + + + 1 + 4 + + + + + True + True + True + end + start + True + menu36 + left + + + + + + 0 + 3 + + + + + True + True + True + end + center + True + menu37 + left + + + + + + 0 + 2 + + + + + True + True + True + end + end + True + menu38 + left + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + True + False + GtkMenuButton + + + 1 + False + + + + + True + False + center + center + This is a label. + True + + + 2 + + + + + True + False + GtkLabel + + + 2 + False + + + + + https://planet.gnome.org + True + True + True + center + center + none + https://planet.gnome.org + + + 3 + + + + + True + False + GtkLinkButton + + + 3 + False + + + + + True + False + + + True + False + start + + + True + False + Tool Button A + True + + + False + True + + + + + True + False + Tool Button B + True + + + False + True + + + + + True + False + Tool Button C + True + + + False + True + + + + + True + False + Tool Button D + True + + + False + True + + + + + True + False + Tool Button E + True + + + False + True + + + + + 0 + 0 + + + + + True + False + start + vertical + + + True + False + Tool Button F + True + + + False + True + + + + + True + False + Tool Button G + True + + + False + True + + + + + True + False + Tool Button H + True + + + False + True + + + + + True + False + Tool Button I + True + + + False + True + + + + + True + False + Tool Button J + True + + + False + True + + + + + True + False + Tool Button K + True + + + False + True + + + + + True + False + Tool Button L + True + + + False + True + + + + + True + False + Tool Button M + True + + + False + True + + + + + True + False + Tool Button N + True + + + False + True + + + + + True + False + Tool Button O + True + + + False + True + + + + + True + False + Tool Button P + True + + + False + True + + + + + True + False + Tool Button Q + True + + + False + True + + + + + 0 + 1 + + + + + 4 + + + + + True + False + GtkToolbar + + + 4 + False + + + + + True + True + center + center + This is an entry. + + + 5 + + + + + True + False + GtkEntry + + + 5 + False + + + + + True + True + word + textbuffer1 + + + 6 + + + + + True + False + GtkTextView + + + 6 + False + + + + + True + False + + + True + False + center + center + True + True + True + + Combo Box Item A + Combo Box Item B + Combo Box Item C + Combo Box Item D + Combo Box Item E + + + + False + + + + + 0 + 0 + + + + + True + False + center + center + True + True + + Combo Box Item F + Combo Box Item G + Combo Box Item H + Combo Box Item I + Combo Box Item J + + + + 0 + 1 + + + + + 7 + + + + + True + False + GtkComboBox + + + 7 + False + + + + + True + False + text/plain + + + 8 + + + + + True + False + GtkAppChooserWidget + + + 8 + False + + + + + True + False + + + 9 + + + + + True + False + GtkMountOperation/GtkPlacesView + + + 9 + False + + + + + True + False + 20 + + + 10 + + + + + True + False + GtkRecentChooserDefault + + + 10 + False + + + + + True + False + vertical + True + + + 11 + + + + + True + False + GtkColorSelection + + + 11 + False + + + + + + diff --git a/tests/testpopupat.c b/tests/testpopupat.c new file mode 100644 index 0000000000..cf9a4538e8 --- /dev/null +++ b/tests/testpopupat.c @@ -0,0 +1,64 @@ +#include + +static void +destroy_cb (GtkWidget *window, + GtkBuilder *builder) +{ + gtk_main_quit (); +} + +static void +populate_popup_cb (GtkAppChooserWidget *app_chooser_widget, + GtkMenu *menu, + GAppInfo *app_info, + gpointer user_data) +{ + GtkWidget *menu_item; + + menu_item = gtk_menu_item_new_with_label ("Menu Item A"); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + + menu_item = gtk_menu_item_new_with_label ("Menu Item B"); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + + menu_item = gtk_menu_item_new_with_label ("Menu Item C"); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + + menu_item = gtk_menu_item_new_with_label ("Menu Item D"); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + + menu_item = gtk_menu_item_new_with_label ("Menu Item E"); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); +} + +int +main (int argc, + char *argv[]) +{ + GtkBuilder *builder; + GtkWidget *window; + GtkWidget *app_chooser_widget; + + gtk_init (&argc, &argv); + + builder = gtk_builder_new_from_file ("popupat.ui"); + + window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); + g_signal_connect (window, "destroy", G_CALLBACK (destroy_cb), builder); + + app_chooser_widget = GTK_WIDGET (gtk_builder_get_object (builder, "appchooserwidget")); + g_signal_connect (app_chooser_widget, "populate-popup", G_CALLBACK (populate_popup_cb), builder); + + gtk_widget_show_all (window); + + gtk_main (); + + g_object_unref (builder); + + return 0; +} -- 2.30.2